﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcCanchitas.Models;

namespace MvcCanchitas.Controllers
{
    public class CanchitaController : Controller
    {
        private CanchitasWS.CanchitasClient proxy = new CanchitasWS.CanchitasClient();

        //
        // GET: /Canchita/
        //Muestra pagina con listado de canhcitas
        public ActionResult Index()
        {
            List<CanchitasWS.Canchita> canchitas = proxy.ListarCanchitas();
            return View(canchitas);
        }
        
        //
        // GET: /Canchita/Details/5
        //muestra pagina con datos de una canchita
        public ActionResult Details(int id)
        {
            CanchitasWS.Canchita canchitaObtenida = proxy.ObtenerCanchita(id);
            return View(canchitaObtenida);
        }

        //
        // GET: /Canchita/Create
        // muestra pagina para ingresar datos de creacion
        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Canchita/Create
        //Recibe los datos del formulario y reliza creacion
        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                string nombre = collection["Nombre"];
                string dimensiones = collection["Dimensiones"];
                string caracteristicas = collection["Caracteristicas"];

                proxy.CrearCanchita(nombre, dimensiones, caracteristicas);

                return RedirectToAction("Index");
            }
            catch (Exception e)
            {
                ModelState.AddModelError(String.Empty, "Error: " + e.Message);
                return View();
            }
        }
        
        //
        // GET: /Canchita/Edit/5
        //muestra pagina con datos a editar
        public ActionResult Edit(int id)
        {
            CanchitasWS.Canchita canchitaAEditar = proxy.ObtenerCanchita(id);
            return View(canchitaAEditar);
        }

        //
        // POST: /Canchita/Edit/5
        //Recibe datos de formulario y reliza edicion
        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                string nombre = collection["Nombre"];
                string dimensiones = collection["Dimensiones"];
                string caracteristicas = collection["Caracteristicas"];
                proxy.ModificarCanchita(id, nombre, dimensiones, caracteristicas);
                
                return RedirectToAction("Index");
            }
            catch (Exception e)
            {
                ModelState.AddModelError(String.Empty, "Error: " + e.Message);
                return View();
            }
        }

        //
        // GET: /Canchita/Delete/5
        // Muestra pagina para confirmar eliminacion
         public ActionResult Delete(int id)
        {
            CanchitasWS.Canchita canchitaAEliminar = proxy.ObtenerCanchita(id);
            return View(canchitaAEliminar);
        }

        //
        // POST: /Canchita/Delete/5
        // realiza eliminacion
        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                proxy.EliminarCanchita(id);
                return RedirectToAction("Index");
            }
            catch (Exception e)
            {
                ModelState.AddModelError(String.Empty, "Error: " + e.Message);
                return View();
            }
        }
    }
}
